package com.sicheng.蓝桥.练习题.基础数论.阶乘;

import java.util.Scanner;

/**
 * @author zsc
 * @version 1.0
 * @date 2022/5/7 14:54
 */
public class 阶乘 {

    /**
     * 题目描述
     * 一个整数n的阶乘可以写成n!，
     * 它表示从1到n这n个整数的乘积。阶乘的增长速度非常快，例如，
     * 13!就已经比较大了，已经无法存放在一个整型变量  中；
     * 而35!就更大了，它已经无法存放在一个浮点型变量中。因此，当n比较大时，
     * 去计算n!是非常困难的。幸运的是，在本题中，我们的任务不是去计算  n!，
     * 而是去计算n!最右边的那个非0的数字是多少。
     * 例如，5!  =  1*2*3*4*5  =  120，因此5!最右边的那个非0的数字是2。
     * 再如：7!  =  5040，因此7!最右边的那个非0的数字是4。
     * 请编写一个程序，输入一个整数n(n< =100)，然后输出n!  最右边的那个非0的数字是多少。
     * 输入
     * 输入只有一个整数n。
     * 输出
     * 输出只有一个整数，即n!  最右边的那个非0的数字。
     * 样例输入
     * 6
     * 样例输出
     * 2
     */

    public static void main(String[] args) {
        int n = new Scanner(System.in).nextInt();
        long res = 1;
        for (int i = 1; i <= n; i++) {
            res *= i;
            while (res % 10 == 0) {
                res /= 10;
            }
            //技巧: 防止数过大，保留后6位非0的即可
            res %= 1000000;
        }

        // 保留最后一位非0的数也就是结果
        // mod运算可以甩掉高位
        System.out.println(res % 10);
    }
}
